package com.efast.dmom.mgmt.service.les;

import java.util.List;

import com.efast.dmom.mgmt.bean.les.GoodsReceiptBean;
import com.efast.dmom.mgmt.entity.les.TwDocAsnHeader;
import com.efast.dmom.mgmt.entity.mes.TeProductInbound;
import com.efast.dmom.mgmt.utils.Assist;

/**
 * @author Administrator
 */
public interface TwDocAsnHeaderService{
	
	/**
	 * 
	 * @描述   成品入库新增
	 * @方法名 insertTwDocAsnHeaderByJob 
	 * @param teProductInbound
	 * @return
	 * @返回类型 int
	 * @创建人 ChenLiPeng
	 * @创建时间 2018年4月23日下午3:59:13
	 * @修改人 
	 * @修改时间 2018年4月23日下午3:59:13
	 */
	public int insertTwDocAsnHeaderByJob(TeProductInbound teProductInbound);
	
	 /**
     * 收货完成
     * @param GoodsReceiptBean
     * @param GoodsReceiptBean
     */
    void headerReceive(GoodsReceiptBean GoodsReceiptBean);
    
    /**
     * 收货拒绝
     * @param value
     * @param assist
     */
    void refuseReceive(TwDocAsnHeader value, Assist assist);
	
	/**
	 * 取消收货操作[ASN状态改为4(收货取消)-只有部分收货/收货完成才能取消]
	 * @param value
	 */
	public void cancelTheReceiptOfTheGoods(TwDocAsnHeader value);
	
	/**
	 * 获得TwDocAsnHeader数据的总行数,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * @param assist
	 * @return
	 */
    long getTwDocAsnHeaderRowCount(Assist assist);
	/**
	 * 获得TwDocAsnHeader数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
	 * @param assist
	 * @return
	 */
    List<TwDocAsnHeader> selectTwDocAsnHeader(Assist assist);
	/**
	 * 获得一个TwDocAsnHeader对象,以参数TwDocAsnHeader对象中不为空的属性作为条件进行查询
	 * @param obj
	 * @return
	 */
    TwDocAsnHeader selectTwDocAsnHeaderByObj(TwDocAsnHeader obj);
	/**
	 * 通过TwDocAsnHeader的id获得TwDocAsnHeader对象
	 * @param id
	 * @return
	 */
    TwDocAsnHeader selectTwDocAsnHeaderById(Integer id);
	/**
	 * 插入TwDocAsnHeader到数据库,包括null值
	 * @param value
	 * @return
	 */
    int insertTwDocAsnHeader(TwDocAsnHeader value);
	/**
	 * 插入TwDocAsnHeader中属性值不为null的数据到数据库
	 * @param value
	 * @return
	 */
    int insertNonEmptyTwDocAsnHeader(TwDocAsnHeader value);
	/**
	 * 批量插入TwDocAsnHeader到数据库
	 * @param value
	 * @return
	 */
    int insertTwDocAsnHeaderByBatch(List<TwDocAsnHeader> value);
	/**
	 * 通过TwDocAsnHeader的id删除TwDocAsnHeader
	 * @param id
	 * @return
	 */
    int deleteTwDocAsnHeaderById(Integer id);
	/**
	 * 通过辅助工具Assist的条件删除TwDocAsnHeader
	 * @param assist
	 * @return
	 */
    int deleteTwDocAsnHeader(Assist assist);
	/**
	 * 通过TwDocAsnHeader的id更新TwDocAsnHeader中的数据,包括null值
	 * @param enti
	 * @return
	 */
    int updateTwDocAsnHeaderById(TwDocAsnHeader enti);
 	/**
	 * 通过辅助工具Assist的条件更新TwDocAsnHeader中的数据,包括null值
	 * @param value
	 * @param assist
	 * @return
	 */
    void updateTwDocAsnHeader(TwDocAsnHeader value,  Assist assist);
    
	/**
	 * 通过TwDocAsnHeader的id更新TwDocAsnHeader中属性不为null的数据
	 * @param enti
	 * @return
	 */
    int updateNonEmptyTwDocAsnHeaderById(TwDocAsnHeader enti);
 	/**
	 * 通过辅助工具Assist的条件更新TwDocAsnHeader中属性不为null的数据
	 * @param value
	 * @param assist
	 * @return
	 */
    int updateNonEmptyTwDocAsnHeader(TwDocAsnHeader value, Assist assist);
}